﻿#ifndef NOSEPIECETOOLBAR_H
#define NOSEPIECETOOLBAR_H

#include <QLabel>
#include <QToolBar>
#include "NosepieceCommon/LensManager.h"
#include "NosepieceCommon/NosepieceCommon_global.h"
namespace Qly
{

/**
 * @brief The ToolBarNosepiece class 这个类只是物镜 GUI，不涉及具体的物镜转换操作。
 * 在这里切换物镜时只是发出 changeLens(int oldLens, int newLens) 信号，交由具体的物镜转盘控制类来完成真正的操作。
 */
class NOSEPIECECOMMON_EXPORT ToolBarNosepiece : public QToolBar
{
    Q_OBJECT
public:
    ToolBarNosepiece(QWidget *parent = Q_NULLPTR);
    void attach(LensManager *pManager);
public slots:
    /**
     * @brief setLens 设置当前物镜, 只是更新界面，不涉及具体的物镜转换操作。
     * @param lens
     */
    void setLens(int lens);
    void setLens(int oldLens, int newLens);
    void nextLens(void);
    void previousLens(void);
    void setReadOnly(bool on);
    void setLensMag(int lens, enum LENS mag);
    void setLensCount(int N);
signals:
    void changeLens(int oldLens, int newLens);
    void doLensHome();
private:
    void initContent();
    void initConnection();

private slots:
    void lensUpdate(void);
    void lensHomeUI();
private:

    QAction *actionLensHome;
    QActionGroup *actionGroup;
    QAction *actionLens[MAX_LENS];

    QIcon icon[13];

    int m_lensCount = 6;
    int m_currentLens = 0;
};

} //namespace Qly
#endif // NOSEPIECETOOLBAR_H
